<!DOCTYPE html>
<html lang="zh-cn">
  <head>
    <meta charset="UTF-8">
    <title>Sucha's Blog - Archive for June, 2022</title>
    <meta name="generator" content="MarkdownProjectCompositor.lua">
    <meta name="author" content="Sucha">
    <meta name="keywords" content="suchang, programming, Linux, Lua">
    <meta name="description" content="Sucha's blog">
    <link rel="shortcut icon" href="../images/ico.png">
    <link rel="stylesheet" type="text/css" href="../styles/blog.css">
    <link rel="stylesheet" type="text/css" href="../styles/prism.min.css">
    <style id="site_theme"></style>
  </head>
  <body>
    <div id="body">
      <div id="text">
	   <!-- Page published by cmark-gfm begins here --><h1>Sucha's Blog ~ Archive for June, 2022</h1>
<p><a id="p2"></a></p>
<div class="date">22年6月26日 周日 15:02</div>
<h2>MoocHelper 更新到 0.2.16</h2>
<p>昨天说到 <a href="https://github.com/Tencent/LuaHelper">LuaHelper</a> 已经更新到了 0.2.16，今天我也同步将 <a href="https://github.com/lalawue/MoocHelper">MoocHelper</a> 更新上去了，主要的改动有</p>
<ul>
<li>当方法里local与self同名时，self指向正确的table</li>
</ul>
<p>例子是</p>
<pre><code class="language-lua">local foo = {}

function foo:test()
    local foo = {}
    self:bar()
end

function foo:bar()
end
</code></pre>
<p>之前当 hover 到 test() 函数中的 self:bar() 时，self 其实指向的是函数内的 local variable foo，而实际 Lua 语义是指向运行当前 function 的 table，毕竟 self 是作为当前 function 第一个参数传递进来的。</p>
<p>moocscript 的处理还特别一点，因为其 class/struct 是通过拼凑 AssignStat 来实现的，这种 <code>:</code> 函数在 class/struct 里面其实是实例函数，语法跟 Lua 不一样，没有 table name 前缀，得特别处理一下。</p>
<p>这里的特别处理是，需要在当前 AST 的位置，一直寻找 parent scope 到最近的 class scope，如果存在，拿到外层 local variable map 的同名变量定义（如上面例子的 <code>foo</code>），将变量定义的 Loc 作为 self 的 varStruct 描述，后面这个 Loc 的逻辑跟 Lua 侧是一样的。</p>
<p>大概这样吧。</p>
<div class="category"><a href="CategoryProgramming.html">CategoryProgramming</a> / <a href="2022-06.html#p2">Permalink</a> / <a href="https://github.com/lalawue/homepage/discussions/categories/blog" target="_blank">Discussion</a></div>
<p><a id="p1"></a></p>
<div class="date">22年6月25日 周六 22:30</div>
<h2>MoocHelper 更新到 0.2.15</h2>
<p>这个其实也是 5 月份的事情，之前也说过，因为一直都有用 <a href="https://github.com/lalawue/mooncake">MoonCake</a>，自然就少不了
LSP 的支持。</p>
<p>这次是同步了 <a href="https://github.com/Tencent/LuaHelper">LuaHelper</a> 的更新，自己这边添加了另外一些功能，比如对于非工程路径的支持，
hover 到 require 库时，可以寻找过去，另外就是函数内部的 local 变量，我是默认不展示在 outline 的，我觉得这些变量太烦了。</p>
<p>另外刚看到 upstream 已经到了 0.2.16 了，等我后面有空再同步一下吧。</p>
<div class="category"><a href="CategoryProgramming.html">CategoryProgramming</a> / <a href="2022-06.html#p1">Permalink</a> / <a href="https://github.com/lalawue/homepage/discussions/categories/blog" target="_blank">Discussion</a></div>
<p><a id="p0"></a></p>
<div class="date">22年6月25日 周六 21:15</div>
<h2>新台式电脑</h2>
<p>上个月买了新的台式电脑，用了一个多月后，感觉还行吧。当时换台式机想了挺久，主要是之前那台 i5 一直停留在 10.12 升不了系统，
也用了好多年了，考虑再三，还是先换了吧。</p>
<p>之前还犹豫要不要买 Apple Silicon M1 的，因为工作中用的就是 M1，所以也算了解。最大 16G 的内存是软肋，即便是工作，
勉勉强强够吧，CPU 倒是还不错，这一两年都足够了其实，GPU 不参与评测。不过如果配上 512G 的 SSD，价格就很不香了。</p>
<p>还有因为平时绝大部分时间用的是 M1，真的不大想下班再用 M1 了，也是一个因素。</p>
<p>于是搞了一台黑苹果，CPU 用了 i7-12700，GPU 是基本入门款，因为平时极少玩游戏，反而内存直接到了 64G。规格上去之后，
机箱体积也小不了，虽然还是 Mini-ITX，还挺重的。</p>
<p>各种原因，显示屏还是 1080P 的，已经用了有 8 年了，因为租住的地方比较小，如果换成 27 寸 4K，感觉塞不下（真的有点挤），
而 M1 对 2K 屏幕支持很弱，我试过即便用了 GitHub 上的 HiDPI 脚本，还是不尽如人意，要上就只能上 4K，所以不如先不换。</p>
<p>直接上 64G 内存的原因，是之前编译一些稍微大一点的 Swift 工程，加上开了其他浏览器什么的之后，感觉内存都快满了情况，
所以不如一步到位 64G 了。</p>
<p>现在的感觉，性能毫无疑问是过剩的，结论我现在确实只是个参数党。</p>
<div class="category"><a href="CategoryLife.html">CategoryLife</a> / <a href="2022-06.html#p0">Permalink</a> / <a href="https://github.com/lalawue/homepage/discussions/categories/blog" target="_blank">Discussion</a></div>
<!-- Page published by cmark-gfm ends here -->
  <div id="foot">2004-<script>var d = new
	Date();document.write(d.getFullYear())</script> &copy;
	Sucha. Powered by MarkdownProjectCompositor.
  </div>
  </div><!-- text -->
  <div id="sidebar">
  </div><!-- sidebar -->
  <script src="../js/prism.min.js" async="async"></script>
  <script src="../js/blog_sidebar.js"></script>
  </div> <!-- body -->
</body>
</html>